1. Field of the Invention
This invention relates to computing resource deadlocks and more particularly relates to resolving computing resource deadlocks.
2. Description of the Related Art
A deadlock occurs when a process is unable to secure a resource that the process needs to complete. For example, when a first process requires a resource held by a second process, which is waiting for a resource held by the first process. This scenario prevents either process from completing. Deadlocks dramatically hinder system performance by squandering resources needed to fulfill other requests. Though a solution to the problem is theoretically simplistic, accounting for everything to produce an adequate solution is difficult. Current solutions have not eliminated the problem. As a result, millions of dollars worth of systems outages per year are attributed to deadlocks.
One approach to avoiding deadlocks is by applying a standard order to allocate resources to processes. This approach restricts a process holding a resource of an ordered class, R1, . . . , Rz, from requesting another resource unless it matches predefined criteria. For example, a process holding a resource of class d, Rd, can only request a resource of class a, Ra, if a>d. This type of restriction hinders optimum performance by not providing processes with possible access to all resources.
Similarly, theories for deadlock prevention exist, but these theories either contain flaws or are impractical. For example, prohibiting exclusive access to a resource is impractical for resources that cannot be spooled. Similarly, requiring processes to request all the resources they will need before starting up is impractical because it would be necessary for the system to know in advance all resources needed regardless of program flow.
From the foregoing discussion, it should be apparent that a need exists for an apparatus, system, and method for resolving computing resource deadlocks. Beneficially, such an apparatus, system, and method would efficiently resolve computing deadlocks and reduce the immense amount of money lost each year due to computing resource deadlocks.